public class code3 {
    //快乐数：可能是无限循环到为1，循环的话就会成环
    //判断是否成环-》快慢双指针判断

    //可能存在两种情况：算着算着到1；一直循环一直到不了1（前面也可看成环）
    //怎么想到双指针的？无限循环（这就成环了）=》快慢双指针
    public boolean isHappy(int n) {
        int fast = Sum(Sum(n));
        int slow = Sum(n);
        while(fast!=slow) {
            fast = Sum(Sum(fast));
            slow = Sum(slow);
        }
        return slow==1;
    }
    public int Sum(int n) {
        int sum =0;
        while(n!=0) {
            sum += (n%10)*(n%10);
            n /= 10;
        }
        return sum;
    }
}
